#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//计算整数存储在内存中二进制中1的个数
//方法一
//int main()
//{
//	unsigned int n = 0;
//	int count = 0;
//	scanf("%d", &n);
//	while (n)
//	{
//		if (n % 2 == 1)
//		{
//			count++;
//		}
//		n = n / 2;
//	}
//	printf("%d", count);
//	return 0;
//}

//方法二
//int main()
//{
//	int n = 0;
//	int count = 0;
//	scanf("%d", &n);
//	for (int i = 0;i < 32;i++)
//	{
//		if ((n >> i) & 1)
//		{
//			count++;
//		}
//	}
//	printf("%d", count);
//	return 0;
//}

//方法三
int main()
{
	int n = 0;
	int count = 0;
	scanf("%d", &n);
	while (n)
	{	
		n &= (n - 1);
		count++;
	}
	printf("%d", count);
	return 0;
}